#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "TelSeaSys.h"
void tratxt(void)
{
	printf("\n==================遍历检查表==================\n");
	FILE* fp;
	fp=fopen("./tell.txt","r");clearerr(fp);
	int i,ch,co=0,coo=0;
	printf("序号\t姓名\t性别\t电话\t\t年龄\n");
	for(i=0;(ch=fgetc(fp))!=EOF;i++)
	{
		if(ch=='>')
		{
			coo=0;
			printf("\n");
		}
		else
		{
			if(ch=='<')
			{
				co++;
				printf("%d\t",co);
			}
			else
			{
				if(ch=='+')
				{
					printf("\t");
				}
				if(ch!='+'&&ch!='*')
				{printf("%c",ch);}
				if(ch=='*')
				{printf(" ");}
			}
			
		}
//		getch(); 
	}
	printf("==================检查表完成==================\n\n");
	printf("按任意键继续：");
	getch();
	putchar('\n'); 
	fclose(fp);
}
void rootmenu(void)
{
    system("cls");
    printf("\n<---------------【电话号码管理系统version1.0_designed by TDTX】--------------->\n\n");
    printf("*********************************主菜单选项**********************************\n""|  A：存信息\tB：查信息\tC：改信息\tD：删信息\tE:编历检查  |\n");
    printf("*****************************************************************************\n");
    printf("请输入要操作的主菜单选项（A,B,C,D,E）,退出系统请按Q：");
    return;
}

/*下面是分功能函数*/ 
void abA1(void)
{
	system("cls");
	FILE* fp;
	printf("请输入一条信息，以空格分隔项目：");
	scanf("%s %s %s %s",kk.xm,kk.xb,kk.dh,kk.nl);
	switch(strlen(kk.xm))
	{
		case 1:kk.xm[1]='*',kk.xm[2]='*',kk.xm[3]='*',kk.xm[4]='*',kk.xm[5]='\0';break;
		case 2:kk.xm[2]='*',kk.xm[3]='*',kk.xm[4]='*',kk.xm[5]='\0';break;
		case 3:kk.xm[3]='*',kk.xm[4]='*',kk.xm[5]='\0';break;
		case 4:kk.xm[4]='*',kk.xm[5]='\0';break;
		default:break;
	}
	switch(strlen(kk.nl))
	{
		case 1:kk.nl[2]=kk.nl[0],kk.nl[0]='*',kk.nl[1]='*',kk.nl[3]='\0';break;
		case 2:kk.nl[2]=kk.nl[1],kk.nl[1]=kk.nl[0],kk.nl[0]='*',kk.nl[3]='\0';break;
		default:break;
	}
	fp=fopen("./tell.txt","a");
	if(fp==NULL)
	{
		printf("fail\n"); 
	}
	else
	{
		printf("OK\n");
	}
	fprintf(fp,"<%s+%s+%s+%s>\0",kk.xm,kk.xb,kk.dh,kk.nl);
	fclose(fp); 
	tratxt();
	printf("\n自动返回选项功能A!");
	sleep(2); 
	return;
}
void abA2(void)
{
	system("cls");
	FILE* fp;
	printf("请输入第一条信息，以空格分隔项目：");
	scanf(" %s %s %s %s",kk.xm,kk.xb,kk.dh,kk.nl); 
	switch(strlen(kk.xm))
	{
		case 1:kk.xm[1]='*',kk.xm[2]='*',kk.xm[3]='*',kk.xm[4]='*',kk.xm[5]='\0';break;
		case 2:kk.xm[2]='*',kk.xm[3]='*',kk.xm[4]='*',kk.xm[5]='\0';break;
		case 3:kk.xm[3]='*',kk.xm[4]='*',kk.xm[5]='\0';break;
		case 4:kk.xm[4]='*',kk.xm[5]='\0';break;
		default:break;
	}
	switch(strlen(kk.nl))
	{
		case 1:kk.nl[2]=kk.nl[0],kk.nl[0]='*',kk.nl[1]='*',kk.nl[3]='\0';break;
		case 2:kk.nl[2]=kk.nl[1],kk.nl[1]=kk.nl[0],kk.nl[0]='*',kk.nl[3]='\0';break;
		default:break;
	}
	fp=fopen("./tell.txt","a");
	if(fp==NULL)
	{
		printf("fail\n"); 
	}
	else
	{
		printf("OK\n");
	}
	fprintf(fp,"<%s+%s+%s+%s>\0",kk.xm,kk.xb,kk.dh,kk.nl);
	fclose(fp); 
	tratxt();
	printf("请输入第二条信息，以空格分隔项目：");
	scanf(" %s %s %s %s",kk.xm,kk.xb,kk.dh,kk.nl); 
	switch(strlen(kk.xm))
	{
		case 1:kk.xm[1]='*',kk.xm[2]='*',kk.xm[3]='*',kk.xm[4]='*',kk.xm[5]='\0';break;
		case 2:kk.xm[2]='*',kk.xm[3]='*',kk.xm[4]='*',kk.xm[5]='\0';break;
		case 3:kk.xm[3]='*',kk.xm[4]='*',kk.xm[5]='\0';break;
		case 4:kk.xm[4]='*',kk.xm[5]='\0';break;
		default:break;
	}
	switch(strlen(kk.nl))
	{
		case 1:kk.nl[2]=kk.nl[0],kk.nl[0]='*',kk.nl[1]='*',kk.nl[3]='\0';break;
		case 2:kk.nl[2]=kk.nl[1],kk.nl[1]=kk.nl[0],kk.nl[0]='*',kk.nl[3]='\0';break;
		default:break;
	}
	fp=fopen("./tell.txt","a");
	if(fp==NULL)
	{
		printf("fail\n"); 
	}
	else
	{
		printf("OK\n");
	}
	fprintf(fp,"<%s+%s+%s+%s>\0",kk.xm,kk.xb,kk.dh,kk.nl);
	fclose(fp); 
	tratxt();
	printf("\n自动返回选项功能A!");
	sleep(2); 
	return;
}
void abA3(void)
{
	system("cls");
	FILE* fp;
	printf("请输入第一条信息，以空格分隔项目：");
	scanf(" %s %s %s %s",kk.xm,kk.xb,kk.dh,kk.nl); 
	switch(strlen(kk.xm))
	{
		case 1:kk.xm[1]='*',kk.xm[2]='*',kk.xm[3]='*',kk.xm[4]='*',kk.xm[5]='\0';break;
		case 2:kk.xm[2]='*',kk.xm[3]='*',kk.xm[4]='*',kk.xm[5]='\0';break;
		case 3:kk.xm[3]='*',kk.xm[4]='*',kk.xm[5]='\0';break;
		case 4:kk.xm[4]='*',kk.xm[5]='\0';break;
		default:break;
	}
	switch(strlen(kk.nl))
	{
		case 1:kk.nl[2]=kk.nl[0],kk.nl[0]='*',kk.nl[1]='*',kk.nl[3]='\0';break;
		case 2:kk.nl[2]=kk.nl[1],kk.nl[1]=kk.nl[0],kk.nl[0]='*',kk.nl[3]='\0';break;
		default:break;
	}
	fp=fopen("./tell.txt","a");
	if(fp==NULL)
	{
		printf("fail\n"); 
	}
	else
	{
		printf("OK\n");
	}
	fprintf(fp,"<%s+%s+%s+%s>\0",kk.xm,kk.xb,kk.dh,kk.nl);
	fclose(fp); 
	tratxt();
	printf("请输入第二条信息，以空格分隔项目：");
	scanf(" %s %s %s %s",kk.xm,kk.xb,kk.dh,kk.nl); 
	switch(strlen(kk.xm))
	{
		case 1:kk.xm[1]='*',kk.xm[2]='*',kk.xm[3]='*',kk.xm[4]='*',kk.xm[5]='\0';break;
		case 2:kk.xm[2]='*',kk.xm[3]='*',kk.xm[4]='*',kk.xm[5]='\0';break;
		case 3:kk.xm[3]='*',kk.xm[4]='*',kk.xm[5]='\0';break;
		case 4:kk.xm[4]='*',kk.xm[5]='\0';break;
		default:break;
	}
	switch(strlen(kk.nl))
	{
		case 1:kk.nl[2]=kk.nl[0],kk.nl[0]='*',kk.nl[1]='*',kk.nl[3]='\0';break;
		case 2:kk.nl[2]=kk.nl[1],kk.nl[1]=kk.nl[0],kk.nl[0]='*',kk.nl[3]='\0';break;
		default:break;
	}
	fp=fopen("./tell.txt","a");
	if(fp==NULL)
	{
		printf("fail\n"); 
	}
	else
	{
		printf("OK\n");
	}
	fprintf(fp,"<%s+%s+%s+%s>\0",kk.xm,kk.xb,kk.dh,kk.nl);
	fclose(fp); 
	tratxt();
	printf("请输入第三条信息，以空格分隔项目：");
	scanf(" %s %s %s %s",kk.xm,kk.xb,kk.dh,kk.nl); 
	switch(strlen(kk.xm))
	{
		case 1:kk.xm[1]='*',kk.xm[2]='*',kk.xm[3]='*',kk.xm[4]='*',kk.xm[5]='\0';break;
		case 2:kk.xm[2]='*',kk.xm[3]='*',kk.xm[4]='*',kk.xm[5]='\0';break;
		case 3:kk.xm[3]='*',kk.xm[4]='*',kk.xm[5]='\0';break;
		case 4:kk.xm[4]='*',kk.xm[5]='\0';break;
		default:break;
	}
	switch(strlen(kk.nl))
	{
		case 1:kk.nl[2]=kk.nl[0],kk.nl[0]='*',kk.nl[1]='*',kk.nl[3]='\0';break;
		case 2:kk.nl[2]=kk.nl[1],kk.nl[1]=kk.nl[0],kk.nl[0]='*',kk.nl[3]='\0';break;
		default:break;
	}
	fp=fopen("./tell.txt","a");
	if(fp==NULL)
	{
		printf("fail\n"); 
	}
	else
	{
		printf("OK\n");
	}
	fprintf(fp,"<%s+%s+%s+%s>\0",kk.xm,kk.xb,kk.dh,kk.nl);
	fclose(fp); 
	tratxt();
	printf("\n自动返回选项功能A!");
	sleep(2); 
	return;
}
void abA4(void)
{
	system("cls");
	FILE* fp;
	printf("请输入第一条信息，以空格分隔项目：");
	scanf(" %s %s %s %s",kk.xm,kk.xb,kk.dh,kk.nl); 
	switch(strlen(kk.xm))
	{
		case 1:kk.xm[1]='*',kk.xm[2]='*',kk.xm[3]='*',kk.xm[4]='*',kk.xm[5]='\0';break;
		case 2:kk.xm[2]='*',kk.xm[3]='*',kk.xm[4]='*',kk.xm[5]='\0';break;
		case 3:kk.xm[3]='*',kk.xm[4]='*',kk.xm[5]='\0';break;
		case 4:kk.xm[4]='*',kk.xm[5]='\0';break;
		default:break;
	}
	switch(strlen(kk.nl))
	{
		case 1:kk.nl[2]=kk.nl[0],kk.nl[0]='*',kk.nl[1]='*',kk.nl[3]='\0';break;
		case 2:kk.nl[2]=kk.nl[1],kk.nl[1]=kk.nl[0],kk.nl[0]='*',kk.nl[3]='\0';break;
		default:break;
	}
	fp=fopen("./tell.txt","a");
	if(fp==NULL)
	{
		printf("fail\n"); 
	}
	else
	{
		printf("OK\n");
	}
	fprintf(fp,"<%s+%s+%s+%s>\0",kk.xm,kk.xb,kk.dh,kk.nl);
	fclose(fp); 
	tratxt();
	printf("请输入第二条信息，以空格分隔项目：");
	scanf(" %s %s %s %s",kk.xm,kk.xb,kk.dh,kk.nl); 
	switch(strlen(kk.xm))
	{
		case 1:kk.xm[1]='*',kk.xm[2]='*',kk.xm[3]='*',kk.xm[4]='*',kk.xm[5]='\0';break;
		case 2:kk.xm[2]='*',kk.xm[3]='*',kk.xm[4]='*',kk.xm[5]='\0';break;
		case 3:kk.xm[3]='*',kk.xm[4]='*',kk.xm[5]='\0';break;
		case 4:kk.xm[4]='*',kk.xm[5]='\0';break;
		default:break;
	}
	switch(strlen(kk.nl))
	{
		case 1:kk.nl[2]=kk.nl[0],kk.nl[0]='*',kk.nl[1]='*',kk.nl[3]='\0';break;
		case 2:kk.nl[2]=kk.nl[1],kk.nl[1]=kk.nl[0],kk.nl[0]='*',kk.nl[3]='\0';break;
		default:break;
	}
	fp=fopen("./tell.txt","a");
	if(fp==NULL)
	{
		printf("fail\n"); 
	}
	else
	{
		printf("OK\n");
	}
	fprintf(fp,"<%s+%s+%s+%s>\0",kk.xm,kk.xb,kk.dh,kk.nl);
	fclose(fp); 
	tratxt();
	printf("请输入第三条信息，以空格分隔项目：");
	scanf(" %s %s %s %s",kk.xm,kk.xb,kk.dh,kk.nl);
	switch(strlen(kk.xm))
	{
		case 1:kk.xm[1]='*',kk.xm[2]='*',kk.xm[3]='*',kk.xm[4]='*',kk.xm[5]='\0';break;
		case 2:kk.xm[2]='*',kk.xm[3]='*',kk.xm[4]='*',kk.xm[5]='\0';break;
		case 3:kk.xm[3]='*',kk.xm[4]='*',kk.xm[5]='\0';break;
		case 4:kk.xm[4]='*',kk.xm[5]='\0';break;
		default:break;
	}
	switch(strlen(kk.nl))
	{
		case 1:kk.nl[2]=kk.nl[0],kk.nl[0]='*',kk.nl[1]='*',kk.nl[3]='\0';break;
		case 2:kk.nl[2]=kk.nl[1],kk.nl[1]=kk.nl[0],kk.nl[0]='*',kk.nl[3]='\0';break;
		default:break;
	}
	fp=fopen("./tell.txt","a");
	if(fp==NULL)
	{
		printf("fail\n"); 
	}
	else
	{
		printf("OK\n");
	}
	fprintf(fp,"<%s+%s+%s+%s>\0",kk.xm,kk.xb,kk.dh,kk.nl);
	fclose(fp); 
	tratxt();
	printf("请输入第四条信息，以空格分隔项目：");
	scanf(" %s %s %s %s",kk.xm,kk.xb,kk.dh,kk.nl); 
	switch(strlen(kk.xm))
	{
		case 1:kk.xm[1]='*',kk.xm[2]='*',kk.xm[3]='*',kk.xm[4]='*',kk.xm[5]='\0';break;
		case 2:kk.xm[2]='*',kk.xm[3]='*',kk.xm[4]='*',kk.xm[5]='\0';break;
		case 3:kk.xm[3]='*',kk.xm[4]='*',kk.xm[5]='\0';break;
		case 4:kk.xm[4]='*',kk.xm[5]='\0';break;
		default:break;
	}
	switch(strlen(kk.nl))
	{
		case 1:kk.nl[2]=kk.nl[0],kk.nl[0]='*',kk.nl[1]='*',kk.nl[3]='\0';break;
		case 2:kk.nl[2]=kk.nl[1],kk.nl[1]=kk.nl[0],kk.nl[0]='*',kk.nl[3]='\0';break;
		default:break;
	}
	fp=fopen("./tell.txt","a");
	if(fp==NULL)
	{
		printf("fail\n"); 
	}
	else
	{
		printf("OK\n");
	}
	fprintf(fp,"<%s+%s+%s+%s>\0",kk.xm,kk.xb,kk.dh,kk.nl);
	fclose(fp); 
	tratxt();
	printf("\n自动返回选项功能A!");
	sleep(2); 
	return;
}
void abB1(void)
{
	system("cls");
	FILE* fp;
	char xmm[6];
	printf("请输入要查询的姓名(5)：");
	scanf(" %s",xmm); 
	fp=fopen("./tell.txt","r");clearerr(fp);
	if(fp==NULL)
	{
		printf("fail\n"); 
	}
	else
	{
		printf("OK\n");
	}
	int i,j,k=0,co=0,f=0;
	char ch,t[29];
	for(i=0;(ch=fgetc(fp))!=EOF;i++)
	{
		if(ch=='\n'||ch=='\r'||ch=='>')
		{
			if(ch=='>')
			{
				t[k]='>';
				t[k+1]='\0';
			}
//			puts(t);
			for(co=0,j=1;t[j]!='+';j++)
			{
//				printf("j=%d:%c,j-1=%d:%c\n",j,t[j],j-1,xmm[j-1]);
				if(t[j]==xmm[j-1])
				{
					co++;//printf("co=%d\n",co);
				}
			}
			if(co==strlen(xmm))
			{
				puts(t);f=1;k=0;break;
			}
			else
			{
				k=0;continue;
			}

		}
		if(ch!=' '&&ch!='\n')
		{
			t[k++]=ch;
		}
	}
	if(f==0)
	{
		printf("\n通讯录没有此姓名，可以存入其信息！\n\n");
	}
	fclose(fp);
	system("pause");
	return;
}
void abB2(void)
{
	system("cls");
	FILE* fp;
	char xbb[2];
	printf("请输入要查询的性别（男-m,女-w）：");
	scanf(" %s",xbb); 
	fp=fopen("./tell.txt","r");clearerr(fp);
	if(fp==NULL)
	{
		printf("fail\n"); 
	}
	else
	{
		printf("OK\n");
	}
	int i,j,co=0,k=0,f=0;
	char ch,t[29];
	for(i=0;(ch=fgetc(fp))!=EOF;i++)
	{
		if(ch=='\n'||ch=='\r'||ch=='>')
		{
			if(ch=='>')
			{
				t[k]='>';
				t[k+1]='\0';
			}
			for(j=5;j<10;j++)
			{
				if(j>0&&t[j-1]=='+'&&(t[j]=='m'||t[j]=='w')&&t[j+1]=='+')
				{
//					printf("进来了2,t[%d]:%c\n",j,t[j]);
					if(t[j]==xbb[0])
					{
						co=1;puts(t);f=1;k=0;continue;
					}
					else
					{
						k=0;break;
					}
				}
			}
			continue;
		}
		if(ch!=' '&&ch!='\n')
		{
			t[k++]=ch;
		}

	}
	if(f==0)
	{
		printf("\n通讯录没有此性别，非法性别查找！\n\n");
	}
	fclose(fp);
	system("pause");
	return;
}
void abB3(void)
{
	system("cls");
	FILE* fp;
	char dhh[12];
	printf("请输入要查询的电话：");
	scanf(" %s",dhh); 
	fp=fopen("./tell.txt","r");clearerr(fp);
	if(fp==NULL)
	{
		printf("fail\n"); 
	}
	else
	{
		printf("OK\n");
	}
	int i,j,k=0,m=0,co=0,f=0;
	char ch,t[29],th[12];
	for(i=0;(ch=fgetc(fp))!=EOF;i++)
	{
		if(ch=='\n'||ch=='\r'||ch=='>')
		{
			if(ch=='>')
			{
				t[k]='>';
				t[k+1]='\0';
			}
			for(co=0,j=8;j<22;j++)
			{
//				printf("进来了1");
				if(t[j]>='0'&&t[j]<='9')
				{
//					printf("找到数字了!");
					if(t[j]==dhh[m++])
					{
						co++;
					}
					else
					{
						m=0;break;
					}
				}
			}
			if(co==strlen(dhh))
			{
				puts(t);f=1;k=0;m=0;break;
			}
			else
			{
				k=0;m=0;continue;
			}

		}
		if(ch!=' '&&ch!='\n')
		{
			t[k++]=ch;
		}
	}
	if(f==0)
	{
		printf("\n通讯录没有此电话,可以存入其信息！\n\n");
	}
	fclose(fp);
	system("pause");
	return;
}
void abB4(void)
{
	system("cls");
	FILE* fp;
	char nll[4];
	printf("请输入要查询的年龄：");
	scanf(" %s",nll); 
	fp=fopen("./tell.txt","r");clearerr(fp);
	if(fp==NULL)
	{
		printf("fail\n"); 
	}
	else
	{
		printf("OK\n");
	}
	int i,j,k=0,m=0,co=0,f=0,dhhlen=0;
	char ch,t[29],th[12];
	for(i=0;(ch=fgetc(fp))!=EOF;i++)
	{
		if(ch=='\n'||ch=='\r'||ch=='>')
		{
			if(ch=='>')
			{
				t[k]='>';
				t[k+1]='\0';
			}
			for(m=strlen(nll)-1,co=0,j=strlen(t)-1-1;t[j]!='+';j--)
			{
//				printf("t[%d]=%c,nll[%d]=%c\n",j,t[j],m,nll[m]);
				if(t[j]==nll[m]&&m>=0)
				{
//					printf("进来了1，t[%d]=%c\n",j,t[j]);
					co++;m--;
				}
				else
				{
					break;
				}
			}
			if(co==strlen(nll))
			{
				puts(t);f=1;k=0;continue;
			}
			else
			{
				k=0;continue;
			}
		}
		if(ch!=' '&&ch!='\n')
		{
			t[k++]=ch;
		}
	}
	if(f==0)
	{
		printf("\n通讯录没有此年龄,可以存入其信息！\n\n");
	}
	fclose(fp);
	system("pause");
	return;
}
void abC1(void)
{
	system("cls");
	FILE* fp;
	char xmm[6];
	printf("请输入要被修改的姓名：");
	scanf(" %5s",xmm); 
	fp=fopen("./tell.txt","r+");clearerr(fp);
	if(fp==NULL)
	{
		printf("fail\n"); 
	}
	else
	{
		printf("OK\n");
	}
	int i,j,k=0,co=0,f=0;
	char ch,t[29];
	int ft=0; 
	for(i=0;(ch=fgetc(fp))!=EOF;i++)
	{
		if(ch=='\n'||ch=='\r'||ch=='>')
		{
			if(ch=='>')
			{
				t[k]='>';
				t[k+1]='\0';
			}
			puts(t);
			for(co=0,j=0;t[j]!='+';j++)
			{
//				printf("进来了,t[%d]:%c\n",j,t[j]);
				if(t[j+1]==xmm[j])
				{
//					putchar(t[j]);
					co++;
				}
			}
			if(co==strlen(xmm))
			{
				clearerr(fp);
				printf("已找到该姓名，请输入要改为的姓名：");
				f=1;k=0;
				scanf(" %s",xmm);
				switch(strlen(xmm))
				{
					case 1:t[1]=xmm[0],t[2]='*',t[3]='*',t[4]='*',t[5]='*';break;
					case 2:t[1]=xmm[2],t[2]=xmm[1],t[3]='*',t[4]='*',t[5]='*';break;
					case 3:t[1]=xmm[0],t[2]=xmm[1],t[3]=xmm[2],t[4]='*',t[5]='*';break;
					case 4:t[1]=xmm[0],t[2]=xmm[1],t[3]=xmm[2],t[4]=xmm[3],t[5]='*';break;
					case 5:t[1]=xmm[0],t[2]=xmm[1],t[3]=xmm[2],t[4]=xmm[3],t[5]=xmm[4];break;
					default:break;
				}
				//t[1]=xmm[0];t[2]=xmm[1];t[3]=xmm[2];t[4]=xmm[3];t[5]=xmm[4];
				puts(t);
				system("pause");
				printf("找到后ft=%ld",ft);
				fseek(fp,ft,SEEK_SET);
				fprintf(fp,"%s\0",t);
				fclose(fp);
				system("pause");
				return;
			}
			else
			{
				k=0;continue;
			}
		}
		if(i==0&&k==0&&ch!='\n')
		{
			ft=ftell(fp)-1;//名字的第一个字符所在的位置锚定
			printf("ft=%ld\n",ft); 
		}
		if(i!=0&&k==0&&ch!='\n')
		{
			ft=ftell(fp)-1;//名字的第一个字符所在的位置锚定
			printf("ft=%ld\n",ft); 
		}
		if(ch!=' '&&ch!='\n')
		{
			t[k++]=ch;
		}
	}
	if(f==0)
	{
		printf("\n通讯录没有此姓名，可以存入其信息！\n\n");
	}
	fclose(fp);
	system("pause");
	return;
}
void abC2(void)
{
	system("cls");
	FILE* fp;
	char xmm[6],xbb[2];
	printf("请输入要被修改性别的姓名：");
	scanf(" %5s",xmm); 
	fp=fopen("./tell.txt","r+");clearerr(fp);
	if(fp==NULL)
	{
		printf("fail\n"); 
	}
	else
	{
		printf("OK\n");
	}
	int i,j,k=0,co=0,f=0;
	char ch,t[29];
	int ft=0; 
	for(i=0;(ch=fgetc(fp))!=EOF;i++)
	{
		if(ch=='\n'||ch=='\r'||ch=='>')
		{
			if(ch=='>')
			{
				t[k]='>';
				t[k+1]='\0';
			}
			puts(t);
			for(co=0,j=0;t[j]!='+';j++)
			{
//				printf("进来了,t[%d]:%c\n",j,t[j]);
				if(t[j+1]==xmm[j])
				{
//					putchar(t[j]);
					co++;
				}
			}
			if(co==strlen(xmm))
			{
				clearerr(fp);
				printf("已找到该姓名，请输入要改为的性别：");
				f=1;k=0;
				scanf(" %1s",xbb);
				t[7]=xbb[0];
				puts(t);
				system("pause");
				printf("找到后ft=%ld",ft);
				fseek(fp,ft,SEEK_SET);
				fprintf(fp,"%s\0",t);
				fclose(fp);
				system("pause");
				return;
			}
			else
			{
				k=0;continue;
			}
		}
		if(i==0&&k==0&&ch!='\n')
		{
			ft=ftell(fp)-1;//名字的第一个字符所在的位置锚定
			printf("ft=%ld\n",ft); 
		}
		if(i!=0&&k==0&&ch!='\n')
		{
			ft=ftell(fp)-1;//名字的第一个字符所在的位置锚定
			printf("ft=%ld\n",ft); 
		}
		if(ch!=' '&&ch!='\n')
		{
			t[k++]=ch;
		}
	}
	if(f==0)
	{
		printf("\n通讯录没有此姓名，可以存入其信息！\n\n");
	}
	fclose(fp);
	system("pause");
	return;
}
void abC3(void)
{
	system("cls");
	FILE* fp;
	char xmm[6],dhh[12];
	printf("请输入要被修改电话的姓名：");
	scanf(" %5s",xmm); 
	fp=fopen("./tell.txt","r+");clearerr(fp);
	if(fp==NULL)
	{
		printf("fail\n"); 
	}
	else
	{
		printf("OK\n");
	}
	int i,j,k=0,co=0,f=0;
	char ch,t[29];
	int ft=0; 
	for(i=0;(ch=fgetc(fp))!=EOF;i++)
	{
		if(ch=='\n'||ch=='\r'||ch=='>')
		{
			if(ch=='>')
			{
				t[k]='>';
				t[k+1]='\0';
			}
			puts(t);
			for(co=0,j=0;t[j]!='+';j++)
			{
//				printf("进来了,t[%d]:%c\n",j,t[j]);
				if(t[j+1]==xmm[j])
				{
//					putchar(t[j]);
					co++;
				}
			}
			if(co==strlen(xmm))
			{
				clearerr(fp);
				printf("已找到该姓名，请输入要改为的电话：");
				f=1;k=0;
				int tellen=0;
				while(tellen!=11)
				{
					scanf(" %11s",dhh);
					tellen=strlen(dhh);
					if(tellen!=11)
					{
						printf("输入电话应该是11位，请重新输入要改为的电话：");
					}
				}
				t[9]=dhh[0];t[10]=dhh[1];t[11]=dhh[2];
				t[12]=dhh[3];t[13]=dhh[4];t[14]=dhh[5];
				t[15]=dhh[6];t[16]=dhh[7];t[17]=dhh[8];
				t[18]=dhh[9];t[19]=dhh[10];
				puts(t);
				system("pause");
				printf("找到后ft=%ld",ft);
				fseek(fp,ft,SEEK_SET);
				fprintf(fp,"%s\0",t);
				fclose(fp);
				system("pause");
				return;
			}
			else
			{
				k=0;continue;
			}
		}
		if(i==0&&k==0&&ch!='\n')
		{
			ft=ftell(fp)-1;//名字的第一个字符所在的位置锚定
			printf("ft=%ld\n",ft); 
		}
		if(i!=0&&k==0&&ch!='\n')
		{
			ft=ftell(fp)-1;//名字的第一个字符所在的位置锚定
			printf("ft=%ld\n",ft); 
		}
		if(ch!=' '&&ch!='\n')
		{
			t[k++]=ch;
		}
	}
	if(f==0)
	{
		printf("\n通讯录没有此姓名，可以存入其信息！\n\n");
	}
	fclose(fp);
	system("pause");
	return;
}
void abC4(void)
{
	system("cls");
	FILE* fp;
	char xmm[6],nll[4];
	printf("请输入要被修改年龄的姓名：");
	scanf(" %5s",xmm); 
	fp=fopen("./tell.txt","r+");clearerr(fp);
	if(fp==NULL)
	{
		printf("fail\n"); 
	}
	else
	{
		printf("OK\n");
	}
	int i,j,k=0,co=0,f=0;
	char ch,t[29];
	int ft=0; 
	for(i=0;(ch=fgetc(fp))!=EOF;i++)
	{
		if(ch=='\n'||ch=='\r'||ch=='>')
		{
			if(ch=='>')
			{
				t[k]='>';
				t[k+1]='\0';
			}
			puts(t);
			for(co=0,j=0;t[j]!='+';j++)
			{
//				printf("进来了,t[%d]:%c\n",j,t[j]);
				if(t[j+1]==xmm[j])
				{
//					putchar(t[j]);
					co++;
				}
			}
			if(co==strlen(xmm))
			{
				clearerr(fp);
				printf("已找到该姓名，请输入要改为的年龄(3)：");
				f=1;k=0;
				scanf(" %s",nll);
				if(strlen(nll)==1)
				{
					t[21]='*';t[22]='*';t[23]=nll[0];
				}
				if(strlen(nll)==2)
				{
					t[21]='*';t[22]=nll[0];t[23]=nll[1]; 
				}
				if(strlen(nll)==3)
				{
					t[21]=nll[0];t[22]=nll[1];t[23]=nll[2]; 
				}
				puts(t);
				system("pause");
				printf("找到后ft=%ld",ft);
				fseek(fp,ft,SEEK_SET);
				fprintf(fp,"%s\0",t);
				fclose(fp);
				system("pause");
				return;
			}
			else
			{
				k=0;continue;
			}
		}
		if(i==0&&k==0&&ch!='\n')
		{
			ft=ftell(fp)-1;//名字的第一个字符所在的位置锚定
			printf("ft=%ld\n",ft); 
		}
		if(i!=0&&k==0&&ch!='\n')
		{
			ft=ftell(fp)-1;//名字的第一个字符所在的位置锚定
			printf("ft=%ld\n",ft); 
		}
		if(ch!=' '&&ch!='\n')
		{
			t[k++]=ch;
		}
	}
	if(f==0)
	{
		printf("\n通讯录没有此姓名，可以存入其信息！\n\n");
	}
	fclose(fp);
	system("pause");
	return;
}
void abD1(void)
{
	system("cls");
	FILE* fp;
	char xmm[6];
	printf("请输入要被删除的姓名：");
	scanf(" %5s",xmm); 
	fp=fopen("./tell.txt","r+");clearerr(fp);
	if(fp==NULL)
	{
		printf("fail\n"); 
	}
	else
	{
		printf("OK\n");
	}
	int i,j,k=0,co=0,f=0;
	char ch,t[29];
	int ft=0; 
	for(i=0;(ch=fgetc(fp))!=EOF;i++)
	{
		if(ch=='\n'||ch=='\r'||ch=='>')
		{
			if(ch=='>')
			{
				t[k]='>';
				t[k+1]='\0';
			}
			puts(t);
			for(co=0,j=0;t[j]!='+';j++)
			{
//				printf("进来了,t[%d]:%c\n",j,t[j]);
				if(t[j+1]==xmm[j])
				{
//					putchar(t[j]);
					co++;
				}
			}
			if(co==strlen(xmm))
			{
				clearerr(fp);
				printf("已找到该姓名，开始删除！");
				f=1;k=0;
				xmm[0]='*';xmm[1]='*';xmm[2]='*';xmm[3]='*';xmm[4]='*';xmm[5]='\0';
				t[1]=xmm[0];t[2]=xmm[1];t[3]=xmm[2];t[4]=xmm[3];t[5]=xmm[4];
				puts(t);

				system("pause");
				printf("找到后ft=%ld",ft);
				fseek(fp,ft,SEEK_SET);
				fprintf(fp,"%s\0",t);
				printf("已经删除该姓名！");
				fclose(fp);
				system("pause");
				return;
			}
			else
			{
				k=0;continue;
			}
		}
		if(i==0&&k==0&&ch!='\n')
		{
			ft=ftell(fp)-1;//名字的第一个字符所在的位置锚定
			printf("ft=%ld\n",ft); 
		}
		if(i!=0&&k==0&&ch!='\n')
		{
			ft=ftell(fp)-1;//名字的第一个字符所在的位置锚定
			printf("ft=%ld\n",ft); 
		}
		if(ch!=' '&&ch!='\n')
		{
			t[k++]=ch;
		}
	}
	if(f==0)
	{
		printf("\n通讯录没有此姓名，可以存入其信息！\n\n");
	}
	fclose(fp);
	system("pause");
	return;
}
void abD2(void)
{
	system("cls");
	FILE* fp;
	char xmm[6],xbb[2];
	printf("请输入要被删除性别的姓名：");
	scanf(" %5s",xmm); 
	fp=fopen("./tell.txt","r+");clearerr(fp);
	if(fp==NULL)
	{
		printf("fail\n"); 
	}
	else
	{
		printf("OK\n");
	}
	int i,j,k=0,co=0,f=0;
	char ch,t[29];
	int ft=0; 
	for(i=0;(ch=fgetc(fp))!=EOF;i++)
	{
		if(ch=='\n'||ch=='\r'||ch=='>')
		{
			if(ch=='>')
			{
				t[k]='>';
				t[k+1]='\0';
			}
			puts(t);
			for(co=0,j=0;t[j]!='+';j++)
			{
//				printf("进来了,t[%d]:%c\n",j,t[j]);
				if(t[j+1]==xmm[j])
				{
//					putchar(t[j]);
					co++;
				}
			}
			if(co==strlen(xmm))
			{
				clearerr(fp);
				printf("已找到该姓名的性别，开始删除！");
				f=1;k=0;
				t[7]='*';
				puts(t);
				system("pause");
				printf("找到后ft=%ld",ft);
				fseek(fp,ft,SEEK_SET);
				fprintf(fp,"%s\0",t);
				printf("已删除该姓名的性别！");
				fclose(fp);
				system("pause");
				return;
			}
			else
			{
				k=0;continue;
			}
		}
		if(i==0&&k==0&&ch!='\n')
		{
			ft=ftell(fp)-1;//名字的第一个字符所在的位置锚定
			printf("ft=%ld\n",ft); 
		}
		if(i!=0&&k==0&&ch!='\n')
		{
			ft=ftell(fp)-1;//名字的第一个字符所在的位置锚定
			printf("ft=%ld\n",ft); 
		}
		if(ch!=' '&&ch!='\n')
		{
			t[k++]=ch;
		}
	}
	if(f==0)
	{
		printf("\n通讯录没有此姓名，可以存入其信息！\n\n");
	}
	fclose(fp);
	system("pause");
	return;
}
void abD3(void)
{
	system("cls");
	FILE* fp;
	char xmm[6],dhh[12];
	printf("请输入要被删除电话的姓名：");
	scanf(" %5s",xmm); 
	fp=fopen("./tell.txt","r+");clearerr(fp);
	if(fp==NULL)
	{
		printf("fail\n"); 
	}
	else
	{
		printf("OK\n");
	}
	int i,j,k=0,co=0,f=0;
	char ch,t[29];
	int ft=0; 
	for(i=0;(ch=fgetc(fp))!=EOF;i++)
	{
		if(ch=='\n'||ch=='\r'||ch=='>')
		{
			if(ch=='>')
			{
				t[k]='>';
				t[k+1]='\0';
			}
			puts(t);
			for(co=0,j=0;t[j]!='+';j++)
			{
//				printf("进来了,t[%d]:%c\n",j,t[j]);
				if(t[j+1]==xmm[j])
				{
//					putchar(t[j]);
					co++;
				}
			}
			if(co==strlen(xmm))
			{
				clearerr(fp);
				printf("已找到该姓名的电话，开始删除！");
				f=1;k=0;
				t[9]='*';t[10]='*';t[11]='*';
				t[12]='*';t[13]='*';t[14]='*';
				t[15]='*';t[16]='*';t[17]='*';
				t[18]='*';t[19]='*';
				puts(t);
				system("pause");
				printf("找到后ft=%ld",ft);
				fseek(fp,ft,SEEK_SET);
				fprintf(fp,"%s\0",t);
				printf("已经删除该姓名的电话！"); 
				fclose(fp);
				system("pause");
				return;
			}
			else
			{
				k=0;continue;
			}
		}
		if(i==0&&k==0&&ch!='\n')
		{
			ft=ftell(fp)-1;//名字的第一个字符所在的位置锚定
			printf("ft=%ld\n",ft); 
		}
		if(i!=0&&k==0&&ch!='\n')
		{
			ft=ftell(fp)-1;//名字的第一个字符所在的位置锚定
			printf("ft=%ld\n",ft); 
		}
		if(ch!=' '&&ch!='\n')
		{
			t[k++]=ch;
		}
	}
	if(f==0)
	{
		printf("\n通讯录没有此姓名，可以存入其信息！\n\n");
	}
	fclose(fp);
	system("pause");
	return;
}
void abD4(void)
{
	system("cls");
	FILE* fp;
	char xmm[6],nll[4];
	printf("请输入要被删除年龄的姓名：");
	scanf(" %5s",xmm); 
	fp=fopen("./tell.txt","r+");clearerr(fp);
	if(fp==NULL)
	{
		printf("fail\n"); 
	}
	else
	{
		printf("OK\n");
	}
	int i,j,k=0,co=0,f=0;
	char ch,t[29];
	int ft=0; 
	for(i=0;(ch=fgetc(fp))!=EOF;i++)
	{
		if(ch=='\n'||ch=='\r'||ch=='>')
		{
			if(ch=='>')
			{
				t[k]='>';
				t[k+1]='\0';
			}
			puts(t);
			for(co=0,j=0;t[j]!='+';j++)
			{
//				printf("进来了,t[%d]:%c\n",j,t[j]);
				if(t[j+1]==xmm[j])
				{
//					putchar(t[j]);
					co++;
				}
			}
			if(co==strlen(xmm))
			{
				clearerr(fp);
				printf("已找到该姓名的年龄，开始删除！");
				f=1;k=0;
				t[21]='*';t[22]='*';t[23]='*'; 
				puts(t);
				system("pause");
				printf("找到后ft=%ld",ft);
				fseek(fp,ft,SEEK_SET);
				fprintf(fp,"%s\0",t);
				printf("已删除该姓名的年龄！");
				fclose(fp);
				system("pause");
				return;
			}
			else
			{
				k=0;continue;
			}
		}
		if(i==0&&k==0&&ch!='\n')
		{
			ft=ftell(fp)-1;//名字的第一个字符所在的位置锚定
			printf("ft=%ld\n",ft); 
		}
		if(i!=0&&k==0&&ch!='\n')
		{
			ft=ftell(fp)-1;//名字的第一个字符所在的位置锚定
			printf("ft=%ld\n",ft); 
		}
		if(ch!=' '&&ch!='\n')
		{
			t[k++]=ch;
		}
	}
	if(f==0)
	{
		printf("\n通讯录没有此姓名，可以存入其信息！\n\n");
	}
	fclose(fp);
	system("pause");
	return;
}
/*下面是主功能函数*/
void menuA(void)
{
	while(1)
	{
	    system("cls");
	    printf("*************************选项A功能*************************\n""|  A1：存一次    A2：存两次    A3：存三次    A4：存四次  |\n");
	    printf("***********************************************************\n");
	    printf("请输入要操作的选项A功能（1,2,3,4）,返回主菜单请按R：");
	    getchar();
	    switch(getchar())
	    {
	    	case 'R':return;
	    	case 'r':return;
	    	case '1':abA1();break;
	    	case '2':abA2();break;
	    	case '3':abA3();break;
	    	case '4':abA4();break;
		}
	} 
}
void menuB(void)
{
	while(1)
	{
	    system("cls");
    	printf("*************************选项B功能*************************\n""|  B1：查姓名    B2：查性别    B3：查电话    B4：查年龄  |\n");
	    printf("***********************************************************\n");
	    printf("请输入要操作的选项A功能（1,2,3,4）,返回主菜单请按R：");
	    getchar();
	    switch(getchar())
	    {
	    	case 'R':return;
	    	case 'r':return;
	    	case '1':abB1();break;
	    	case '2':abB2();break;
	    	case '3':abB3();break;
	    	case '4':abB4();break;
		}
	} 
}
void menuC(void)
{
	while(1)
	{
	    system("cls");
    	printf("*************************选项C功能*************************\n""|  C1：改姓名    C2：改性别    C3：改电话    C4：改年龄  |\n");
	    printf("***********************************************************\n");
	    printf("请输入要操作的选项A功能（1,2,3,4）,返回主菜单请按R：");
	    getchar();
	    switch(getchar())
	    {
	    	case 'R':return;
	    	case 'r':return;
	    	case '1':abC1();break;
	    	case '2':abC2();break;
	    	case '3':abC3();break;
	    	case '4':abC4();break;
		}
	} 
}
void menuD(void)
{

	while(1)
	{
	    system("cls");
    	printf("*************************选项D功能*************************\n""|  D1：删姓名    D2：删性别    D3：删电话    D4：删年龄  |\n");
	    printf("***********************************************************\n");
	    printf("请输入要操作的选项A功能（1,2,3,4）,返回主菜单请按R：");
	    getchar();
	    switch(getchar())
	    {
	    	case 'R':return;
	    	case 'r':return;
	    	case '1':abD1();break;
	    	case '2':abD2();break;
	    	case '3':abD3();break;
	    	case '4':abD4();break;
		}
	} 
}